package com.tmt.api.service;

import java.util.List;
import java.util.concurrent.CompletableFuture;

import com.swak.annotation.FluxAsync;
import com.swak.service.IBaseService;
import com.tmt.api.entity.User;
import com.tmt.api.entity.UserAccount;

/**
 * 用户服务接口
 * 
 * @author lifeng
 * @date 2020年4月18日 下午11:01:38
 */
@FluxAsync
public interface UserService extends IBaseService<User, Long> {

	/**
	 * 通过账号登陆获得用户
	 * 
	 * @param account 用户账号
	 * @return 用户
	 */
	User getByAccount(String account);

	/**
	 * 用户注册
	 * 
	 * @param account 用户账号
	 * @return 注册之后的用户
	 */
	User register(UserAccount account);

	/**
	 * 异步获取用户 -- 只是测试自动生成异步接口的逻辑
	 * 
	 * @param id
	 * @return
	 */
	default CompletableFuture<User> asyncGet(Long id) {
		return null;
	}

	/**
	 * 异步获取用户 -- 只是测试自动生成异步接口的逻辑
	 * 
	 * @param id
	 * @return
	 */
	default CompletableFuture<User> asyncGet(List<User> users) {
		return null;
	}
}
